package com.tedu.api.socket;
/**
 * 服务器
 * 编写步骤”
 * 1.定义私有属性：ServerSocket【运行服务器端网络链接类】
 * 2.实现Server构造器---实例化ServerSocket---申请端口号：6666
 * 3.实现start()方法---①等待客户端链接②IO流
 * 4.构建主方法：创建Server对象，并且启动start
 */


import java.io.IOException;
import java.io.InputStream;

import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    //1.定义私有属性  ServerSocket  申请端口号：6666

    private ServerSocket serverSocket;
    public Server(){
        try{
            serverSocket=new ServerSocket(6666);
        }catch (IOException e){
            e.printStackTrace();
        }
    }
    //3.实现start()方法：等待客户端连接：accept()  返回一个socket对象

    public void start() throws IOException {
        System.out.println("-----等待客户端连接-----");
        Socket socket=serverSocket.accept();
        System.out.println("一个客户端连接成功了");

        //从客户端链接服务器端---链接成功---Socket对象【对话】
        InputStream inputStream=socket.getInputStream();//读入
        //高级流--转换流：目的：指定字符集
        PrintStream outputStream= (PrintStream) socket.getOutputStream();
        new PrintStream(socket.getOutputStream());
        byte[] buffer=new byte[1024];
        int bytesRead;
        while ((bytesRead=inputStream.read(buffer))!=-1){

            String str=new String(buffer,0,bytesRead);
            System.out.println("客户端说的话："+str);
            outputStream.println("服务器收到消息");
        }


    }
    //4.构建主方法
    public static void main(String[] args) throws IOException {
        //创建Server对象
        Server server=new Server();//注册软件编号：6666
        server.start();
    }
}

